﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CRC.GestionSalones.Dominio.Clases
{
    public class Congregacion
    {
        private int intId;
        private string strNombreCRC = String.Empty;
        private string strNombreSucursal = String.Empty;
        private int numero;
        private Boolean esAnfitriona = false;
        private Salon salon = null;
        private Persona presidente = null;
        private Persona secretario = null;
        private Persona superintendenteCircuito = null;
        private string observaciones = string.Empty;
        
        //Contructor per defecte
        public Congregacion() { }

        public Congregacion(
            int pIntNumero,
            String pstrNombreCRC, 
            String pstrNobreSucursal,
            Boolean pEsAnfitriona,
            Salon pSalon,
            String pStrObservaciones,
            Persona pPresidente, 
            Persona pSecretario,
            Persona pSupCircuito
        )
        {
            this.numero = pIntNumero;
            this.strNombreCRC = pstrNombreCRC;
            this.strNombreSucursal = pstrNobreSucursal;
            this.esAnfitriona = pEsAnfitriona;
            this.salon = pSalon;
            this.observaciones = pStrObservaciones;
            this.presidente = pPresidente;
            this.secretario = pSecretario;
            this.superintendenteCircuito = pSupCircuito;
        }

        public Congregacion(
            int pIntNumero,
            string pstrNombreCRC,
            string pstrNobreSucursal,
            Salon pSalon,
            String pStrObservaciones
        )
        {
            this.numero = pIntNumero;
            this.strNombreCRC = pstrNombreCRC;
            this.strNombreSucursal = pstrNobreSucursal;
            this.salon = pSalon;
            pSalon.Asistentes.Add(this);
            this.observaciones = pStrObservaciones;
        }

        public virtual int Id
        {
            get { return intId; }
            set { this.intId = value; }
        }

        public virtual string NombreCRC 
        {
            get { return this.strNombreCRC; }
            set { this.strNombreCRC = value; }
        }

        public virtual string NombreSucursal
        {
            get { return this.strNombreSucursal; }
            set { this.strNombreSucursal = value; }
        }

        public virtual int Numero
        {
            get { return this.numero; }
            set { this.numero = value; }
        }

        public virtual Boolean EsAnfitriona
        {
            get { return this.esAnfitriona; }
            set { this.esAnfitriona = value; }
        }

        public virtual Salon Salon 
        {
            get { return this.salon; }
            set { this.salon = value; }
        }

        public virtual Persona Presidente 
        {
            get { return this.presidente; }
            set { this.presidente = value; }
        }

        public virtual Persona Secretario
        {
            get { return this.secretario; }
            set { this.secretario = value; }
        }

        public virtual Persona SuperintendenteCircuito 
        {
            get { return this.superintendenteCircuito; }
            set { this.superintendenteCircuito = value; }
        }

        public virtual string Observaciones
        {
            get { return this.observaciones; }
            set { this.observaciones = value; }
        }
        
    }
}
